for _ in range(int(input())):
n=int(input())
lis=list(map(int,input().split()))
ans=n
s=sum(lis)
s_sum=0
for i in range(n):
s_sum+=lis[i]
ref=i+1
if s%s_sum==0:
cur_sum=0
lower=0
for j in range(i+1,n):
cur_sum+=lis[j]
lower+=1
if cur_sum==s_sum:
cur_sum=0
ref=max(ref,lower)
lower=0
elif cur_sum>s_sum:break
if cur_sum==0:
ans=min(ans,ref)
print(ans)
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cctype>
#include <cmath>
#include <string>
#include<math.h>
#include <bits/stdc++.h>
#include <map>
#define ll long long
const int mod=1e9+7;
using namespace std;
void solve(){
ll n;
cin>>n;
ll a[n+1], s[n+1]={0};
for(ll i=1; i<=n; i++){
cin>>a[i];
s[i]=s[i-1]+a[i];
}
ll p=0, ans=n, k, res, ok;
for(ll i=1; i<=n; i++){
k=i;
res=i;
p=0;
ok=0;
for(ll j=i+1; j<=n; j++){
if(s[j]-s[i]>s[k]) break;
if(s[j]-s[i]==s[k]){
res=max(res, j-k);
k=j;
if(j==n){
p = max(res, p);
ok=1;
}
}
if(ok) ans = min(ans, p);
}
}
cout<<ans<<endl;
}
int main(){
ll n;
cin>>n;
while(n--) solve();
}
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |
445. Add Two Numbers II | 442. Find All Duplicates in an Array |
437. Path Sum III | 436. Find Right Interval |